package com.wengu.algorithm.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.util.Date;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 单个用户模拟任务分配结果详情
 * </p>
 *
 * @author wanghailei
 * @since 2025-03-02
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class AssignmentOutcomeUser implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 关联主表ID
     */
    private Long mainId;

    /**
     * 结果主表ID
     */
    private Long outcomeId;

    /**
     * 用户表id
     */
    private Long userId;

    /**
     * 生成数据的版本号，同一个版本号为同一批数据
     */
    private Integer versionNo;

    /**
     * 创建时间
     */
    private Date createDate;

    /**
     * 更新时间
     */
    private Date updateDate;

    /**
     * 逻辑删除标识：0=正常，1=删除
     */
    private Integer deleteFlag;

    /**
     * 总质量
     */
    private Double totalQuality;

    /**
     * 平均质量
     */
    private Double averageQuality;

    /**
     * 任务总数
     */
    private Integer taskNumber;

    /**
     * 该用户拟执行任务的顺序列表
     */
    private String taskList;

    /**
     * 该用户拟执行任务的顺序列表-BETDA算法
     */
    private String taskListB;

    /**
     * 该用户拟执行任务的顺序列表-ETDA算法
     */
    private String taskListEtda;

    /**
     * 该用户花费总金额
     */
    private Double totalCost;

    /**
     * 该用户旅行花费总金额
     */
    private Double distanceCost;

    /**
     * 该用户执行任务花费总金额
     */
    private Double executionCost;
    /**
     * 总预算
     */
    public Double budget;

    /**
     * BETDA算法的对应的效用值
     */
    public Double totalQualityB;
    /**
     * ETDA算法的对应的效用值
     */
    public Double totalQualityEtda;

    /**
     * 最佳算法名称
     */
    public String algName;

}
